﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Windows.Media.Animation;
using Dictionary;

namespace Dictionary.PresentationLayer
{
    /// <summary>
    /// Interaction logic for Dict.xaml
    /// </summary>
    public partial class Dict : Window
    {
        public string ok;
        public Dict()
        {
            InitializeComponent();
            ok = null;
        }

#region Function
        //ham goi effect cua cac nut min, max, close
        private void ControlButton(System.Windows.Controls.Image i, string s)
        {
            i.RenderTransformOrigin = new System.Windows.Point(0.5, 0.5);
            Storyboard stb = new Storyboard();
            stb = (Storyboard)Resources[s];
            i.BeginStoryboard(stb);
        }

        private void ScaleControl(TextBox ctr)
        {
            Storyboard stb = new Storyboard();
            stb = (Storyboard)Resources["ScaleControl"];
            ctr.RenderTransformOrigin = new System.Windows.Point(0.5, 0.5);
            ctr.BeginStoryboard(stb);
        }

        private bool CheckValid()
        {
            if (txtFileName.Text == "")
            {
                txtFileName.Focus();
                MessageBox.Show("Bạn hãy nhập tên cho file từ điển mới !", "Thêm Từ Điển Mới", MessageBoxButton.OK, MessageBoxImage.Information);
                return false;
            }
            if (txtDictName.Text == "")
            {
                txtDictName.Focus();
                MessageBox.Show("Bạn nhập tên cho từ điển mới !", "Thêm Từ Điển Mới", MessageBoxButton.OK, MessageBoxImage.Information);
                return false;
            }
            return true;
        }
#endregion

        private void imgClose_MouseEnter(object sender, MouseEventArgs e)
        {
            BitmapImage bi = new BitmapImage();
            bi.BeginInit();
            bi.UriSource = new Uri("../Image/Close_2.png", UriKind.Relative);
            bi.EndInit();
            ImageSource img = bi;
            imgClose.Source = img;
            ControlButton(imgClose, "ControlButton_Down");
        }

        private void imgClose_MouseLeave(object sender, MouseEventArgs e)
        {
            BitmapImage bi = new BitmapImage();
            bi.BeginInit();
            bi.UriSource = new Uri("../Image/Close.png", UriKind.Relative);
            bi.EndInit();
            ImageSource img = bi;
            imgClose.Source = img;
            ControlButton(imgClose, "ControlButton_Up");
        }

        private void imgClose_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            this.Close();
        }

        private void lblTitle_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            this.DragMove();
        }

        private void bttCancel_Click(object sender, RoutedEventArgs e)
        {
            Close();
        }

        private void bttOk_Click(object sender, RoutedEventArgs e)
        {
            if (tbcMain.SelectedIndex==0)
            {
                if (CheckValid() == false)
                    return;

                if (BusLayer.ModifyDictBus.AddNewDict(txtFileName.Text, txtDictName.Text) == false)
                {
                    MessageBox.Show("Tên file cho từ điển mới đã tồn tại, bạn hãy chọn tên khác !", "Thêm Từ Điển Mới", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                else
                {
                    ok = txtFileName.Text+".xml";
                    Close();
                }
            }
            else
            {
                if (txtFileDictName.Text.Trim()== "")
                {
                    MessageBox.Show("Bạn phải nhập đường dẫn tới bộ từ điển cần thêm !", "Thêm Từ Điển Mới", MessageBoxButton.OK, MessageBoxImage.Information);
                    txtFileDictName.Focus();
                    return;
                }
                else
                {
                    if (BusLayer.ModifyDictBus.AddExistCheckFile(txtFileDictName.Text)==true)
                    {
                        MessageBox.Show("Tên file này đã tồn tại, bạn hãy chọn tên khác !", "Thêm Từ Điển Mới", MessageBoxButton.OK, MessageBoxImage.Error);
                        txtFileDictName.Focus();
                        return;
                    }
                    else
                    {
                        if (BusLayer.ModifyDictBus.CheckContentDict(txtFileDictName.Text) == false)
                        {
                            MessageBox.Show("File này không phải là file dữ liệu từ điển của chương trình !", "Thêm Từ Điển Mới",MessageBoxButton.OK,MessageBoxImage.Error);
                            txtFileDictName.Focus();
                            return;
                        }
                        else
                        {
                            if (BusLayer.ModifyDictBus.AddExistDict(txtFileDictName.Text) == false)
                            {
                                MessageBox.Show("Không thể copy file này !", "Thêm Từ Điển Mới", MessageBoxButton.OK, MessageBoxImage.Error);
                                txtFileDictName.Focus();
                                return;
                            }
                            else
                            {
                                ok = System.IO.Path.GetFileName(txtFileDictName.Text);
                                Close();
                            }
                        }
                    }
                }
            }
        }

        private void txtDictName_MouseEnter(object sender, MouseEventArgs e)
        {
            ScaleControl(txtDictName);
        }

        private void txtFileName_MouseEnter(object sender, MouseEventArgs e)
        {
            ScaleControl(txtFileName);
        }

        private void txtFileDictName_MouseEnter(object sender, MouseEventArgs e)
        {
            ScaleControl(txtFileDictName);
        }

        private void bttBrowse_Click(object sender, RoutedEventArgs e)
        {
            Microsoft.Win32.OpenFileDialog openDialog = new Microsoft.Win32.OpenFileDialog();
            openDialog.DefaultExt = ".xml";
            openDialog.Filter = "Xml documents (.xml)|*.xml"; 
            if (openDialog.ShowDialog().Value==true)
            {
                txtFileDictName.Text = openDialog.FileName;
            }
        }
    }
}
